package com.yunke.entity.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 系统配置展示对象
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
@Schema(name = "YunkeConfigVo", description = "系统配置展示对象")
public class YunkeConfigVo {

    @Schema(description = "配置ID")
    private Long id;

    @Schema(description = "配置键名")
    private String configKey;

    @Schema(description = "配置值")
    private String configValue;

    @Schema(description = "配置名称")
    private String configName;

    @Schema(description = "配置分类")
    private String configCategory;

    @Schema(description = "配置类型")
    private Integer configType;

    @Schema(description = "配置类型描述")
    private String configTypeDesc;

    @Schema(description = "配置描述")
    private String configDesc;

    @Schema(description = "默认值")
    private String defaultValue;

    @Schema(description = "可选值（JSON格式）")
    private String optionValues;

    @Schema(description = "验证规则")
    private String validationRule;

    @Schema(description = "是否系统配置")
    private Boolean isSystem;

    @Schema(description = "系统配置描述")
    private String isSystemDesc;

    @Schema(description = "是否必填")
    private Boolean isRequired;

    @Schema(description = "必填描述")
    private String isRequiredDesc;

    @Schema(description = "是否启用")
    private Boolean isEnabled;

    @Schema(description = "启用状态描述")
    private String isEnabledDesc;

    @Schema(description = "是否敏感信息")
    private Boolean isSensitive;

    @Schema(description = "敏感信息描述")
    private String isSensitiveDesc;

    @Schema(description = "排序权重")
    private Integer sortWeight;

    @Schema(description = "配置组")
    private String configGroup;

    @Schema(description = "扩展信息（JSON格式）")
    private String extraInfo;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "状态")
    private Integer status;

    @Schema(description = "状态描述")
    private String statusDesc;

    @Schema(description = "创建时间")
    private Long createTime;

    @Schema(description = "更新时间")
    private Long updateTime;
} 